library (plotly)

Attaching package: ‘plotly’

The following object is masked from ‘package:ggplot2’:

    last_plot

The following object is masked from ‘package:stats’:

    filter

The following object is masked from ‘package:graphics’:

    layout

   # Install patchwork package
library("patchwork")  

manning <- read_csv("manning.csv")
Warning: Missing column names filled in: 'X1' [1]

── Column specification ────────────────────────────────────────────────────────────────────────────────────────────
cols(
  X1 = col_double(),
  season = col_double(),
  name = col_character(),
  team_color = col_character(),
  headshot_url = col_character(),
  epa = col_double()
)
g <- ggplot(manning, aes(x = season, y = epa))

g1 <- g + geom_line(color = manning$team_color)+
  xlim(1999, 2021)+
  ylim(-75, 300)+
  theme_classic()

pic <- manning$headshot_url[1]

library(magick)
pic2 <- image_read(pic)

image <- image_fill(pic2, 'none')
raster <- as.raster(image)

g2 <- g1 + annotation_raster(raster, 1998, 2002, 200, 300)
brady <- read_csv("brady.csv")
Warning: Missing column names filled in: 'X1' [1]

── Column specification ────────────────────────────────────────────────────────────────────────────────────────────
cols(
  X1 = col_double(),
  season = col_double(),
  name = col_character(),
  team_color = col_character(),
  headshot_url = col_character(),
  epa = col_double()
)
b <- ggplot(brady, aes(x = season, y = epa))

b1 <- b + geom_line(color = brady$team_color)+
  xlim(1999, 2022)+
  ylim(-75, 300)+
  theme_classic()

pic <- brady$headshot_url[1]

pic2 <- image_read(pic)

image <- image_fill(pic2, 'none')
raster <- as.raster(image)


b2 <- b1 + annotation_raster(raster, 2000, 2004, 200, 300)
ben <- read_csv("ben.csv")
Warning: Missing column names filled in: 'X1' [1]

── Column specification ────────────────────────────────────────────────────────────────────────────────────────────
cols(
  X1 = col_double(),
  season = col_double(),
  name = col_character(),
  team_color = col_character(),
  headshot_url = col_character(),
  epa = col_double()
)
b <- ggplot(ben, aes(x = season, y = epa))

b1 <- b + geom_line(color = ben$team_color)+
  xlim(1999, 2022)+
  ylim(-75, 300)+
  theme_classic()

pic <- ben$headshot_url[1]

pic2 <- image_read(pic)

image <- image_fill(pic2, 'none')
raster <- as.raster(image)


b3 <- b1 + annotation_raster(raster, 2000, 2004, 200, 300)
cam <- read_csv("cam.csv")
Warning: Missing column names filled in: 'X1' [1]

── Column specification ────────────────────────────────────────────────────────────────────────────────────────────
cols(
  X1 = col_double(),
  season = col_double(),
  name = col_character(),
  team_color = col_character(),
  headshot_url = col_character(),
  epa = col_double()
)
b <- ggplot(cam, aes(x = season, y = epa))

b1 <- b + geom_line(color = cam$team_color)+
  xlim(1999, 2022)+
  ylim(-75, 300)+
  theme_classic()

pic <- cam$headshot_url[1]
pic2 <- image_read(pic)

image <- image_fill(pic2, 'none')
raster <- as.raster(image)

b5 <- b1 + annotation_raster(raster, 2000, 2004, 200, 300)

b5


subplot(nrows = 2,g2, b2, b5, b4)
LS0tCnRpdGxlOiAiUiBOb3RlYm9vayIKb3V0cHV0OiBodG1sX25vdGVib29rCi0tLQoKCgpgYGB7cn0KbGlicmFyeShzaGlueSkKbGlicmFyeShyZWFkcikKbGlicmFyeShkcGx5cikKbGlicmFyeShtYXJrZG93bikKbGlicmFyeShrbml0cikKbGlicmFyeShnZ3Bsb3QyKQpsaWJyYXJ5IChwbG90bHkpCmxpYnJhcnkocG5nKQpgYGAKCmBgYHtyfQoKICAgIyBJbnN0YWxsIHBhdGNod29yayBwYWNrYWdlCmxpYnJhcnkoInBhdGNod29yayIpICAKCm1hbm5pbmcgPC0gcmVhZF9jc3YoIm1hbm5pbmcuY3N2IikKCmcgPC0gZ2dwbG90KG1hbm5pbmcsIGFlcyh4ID0gc2Vhc29uLCB5ID0gZXBhKSkKCmcxIDwtIGcgKyBnZW9tX2xpbmUoY29sb3IgPSBtYW5uaW5nJHRlYW1fY29sb3IpKwogIHhsaW0oMTk5OSwgMjAyMSkrCiAgeWxpbSgtNzUsIDMwMCkrCiAgdGhlbWVfY2xhc3NpYygpCgpwaWMgPC0gbWFubmluZyRoZWFkc2hvdF91cmxbMV0KCmxpYnJhcnkobWFnaWNrKQpwaWMyIDwtIGltYWdlX3JlYWQocGljKQoKaW1hZ2UgPC0gaW1hZ2VfZmlsbChwaWMyLCAnbm9uZScpCnJhc3RlciA8LSBhcy5yYXN0ZXIoaW1hZ2UpCgpnMiA8LSBnMSArIGFubm90YXRpb25fcmFzdGVyKHJhc3RlciwgMTk5OCwgMjAwMiwgMjAwLCAzMDApCmBgYAoKCmBgYHtyfQpicmFkeSA8LSByZWFkX2NzdigiYnJhZHkuY3N2IikKCmIgPC0gZ2dwbG90KGJyYWR5LCBhZXMoeCA9IHNlYXNvbiwgeSA9IGVwYSkpCgpiMSA8LSBiICsgZ2VvbV9saW5lKGNvbG9yID0gYnJhZHkkdGVhbV9jb2xvcikrCiAgeGxpbSgxOTk5LCAyMDIyKSsKICB5bGltKC03NSwgMzAwKSsKICB0aGVtZV9jbGFzc2ljKCkKCnBpYyA8LSBicmFkeSRoZWFkc2hvdF91cmxbMV0KCnBpYzIgPC0gaW1hZ2VfcmVhZChwaWMpCgppbWFnZSA8LSBpbWFnZV9maWxsKHBpYzIsICdub25lJykKcmFzdGVyIDwtIGFzLnJhc3RlcihpbWFnZSkKCgpiMiA8LSBiMSArIGFubm90YXRpb25fcmFzdGVyKHJhc3RlciwgMjAwMCwgMjAwNCwgMjAwLCAzMDApCmBgYAoKCgpgYGB7cn0KYmVuIDwtIHJlYWRfY3N2KCJiZW4uY3N2IikKCmIgPC0gZ2dwbG90KGJlbiwgYWVzKHggPSBzZWFzb24sIHkgPSBlcGEpKQoKYjEgPC0gYiArIGdlb21fbGluZShjb2xvciA9IGJlbiR0ZWFtX2NvbG9yKSsKICB4bGltKDE5OTksIDIwMjIpKwogIHlsaW0oLTc1LCAzMDApKwogIHRoZW1lX2NsYXNzaWMoKQoKcGljIDwtIGJlbiRoZWFkc2hvdF91cmxbMV0KCnBpYzIgPC0gaW1hZ2VfcmVhZChwaWMpCgppbWFnZSA8LSBpbWFnZV9maWxsKHBpYzIsICdub25lJykKcmFzdGVyIDwtIGFzLnJhc3RlcihpbWFnZSkKCgpiMyA8LSBiMSArIGFubm90YXRpb25fcmFzdGVyKHJhc3RlciwgMjAwMCwgMjAwNCwgMjAwLCAzMDApCmBgYAoKYGBge3J9CmFhcm9uIDwtIHJlYWRfY3N2KCJhYXJvbi5jc3YiKQoKYiA8LSBnZ3Bsb3QoYWFyb24sIGFlcyh4ID0gc2Vhc29uLCB5ID0gZXBhKSkKCmIxIDwtIGIgKyBnZW9tX2xpbmUoY29sb3IgPSBhYXJvbiR0ZWFtX2NvbG9yKSsKICB4bGltKDE5OTksIDIwMjIpKwogIHlsaW0oLTc1LCAzMDApKwogIHRoZW1lX2NsYXNzaWMoKQoKcGljIDwtIGFhcm9uJGhlYWRzaG90X3VybFsxXQpwaWMyIDwtIGltYWdlX3JlYWQocGljKQoKaW1hZ2UgPC0gaW1hZ2VfZmlsbChwaWMyLCAnbm9uZScpCnJhc3RlciA8LSBhcy5yYXN0ZXIoaW1hZ2UpCgoKYjQgPC0gYjEgKyBhbm5vdGF0aW9uX3Jhc3RlcihyYXN0ZXIsIDIwMDAsIDIwMDQsIDIwMCwgMzAwKQoKYjQKCnN1YnBsb3QobnJvd3MgPSAyLGcyLCBiMiwgYjMsIGI0KQpgYGAKCmBgYHtyfQpjYW0gPC0gcmVhZF9jc3YoImNhbS5jc3YiKQoKYiA8LSBnZ3Bsb3QoY2FtLCBhZXMoeCA9IHNlYXNvbiwgeSA9IGVwYSkpCgpiMSA8LSBiICsgZ2VvbV9saW5lKGNvbG9yID0gY2FtJHRlYW1fY29sb3IpKwogIHhsaW0oMTk5OSwgMjAyMikrCiAgeWxpbSgtNzUsIDMwMCkrCiAgdGhlbWVfY2xhc3NpYygpCgpwaWMgPC0gY2FtJGhlYWRzaG90X3VybFsxXQpwaWMyIDwtIGltYWdlX3JlYWQocGljKQoKaW1hZ2UgPC0gaW1hZ2VfZmlsbChwaWMyLCAnbm9uZScpCnJhc3RlciA8LSBhcy5yYXN0ZXIoaW1hZ2UpCgpiNSA8LSBiMSArIGFubm90YXRpb25fcmFzdGVyKHJhc3RlciwgMjAwMCwgMjAwNCwgMjAwLCAzMDApCgpiNQoKc3VicGxvdChucm93cyA9IDIsZzIsIGIyLCBiNSwgYjQpCmBgYA==